package com.gxc.array;

import java.util.Scanner;

/**
 * 你现在是一场采用特殊赛制投篮大赛的记录员。这场比赛由若干回合组成，过去几回合的得分可能会影响以后几回合的得分。
 * 比赛开始时，记录是空白的。
 * 你会得到一个记录操作的字符串列表 ops，其中ops[i]是你需要记录的第i项操作，ops遵循下述规则：
 *
 * 整数x-表示本回合新获得分数x
 * “+” – 表示本回合新获得的得分是前两次得分的总和。
 * “D” – 表示本回合新获得的得分是前一次得分的两倍。
 * “C” – 表示本回合没有分数，并且前一次得分无效，将其从记录中移除。
 * 请你返回记录中所有得分的总和。
 *
 * 输入描述
 * 输入为一个字符串数组
 *
 * 输出描述
 * 输出为一个整形数字
 *
 * 提示
 * 1 <= ops.length <= 1000
 * ops[i] 为 “C”、“D”、“+”，或者一个表示整数的字符串。整数范围是 [-3 * 10^4, 3 * 10^4]
 * 需要考虑异常的存在，如有异常情况，请返回-1
 * 对于“+”操作，题目数据不保证记录此操作时前面总是存在两个有效的分数
 * 对于“C”和“D”操作，题目数据不保证记录此操作时前面存在一个有效的分数
 * 题目输出范围不会超过整型的最大范围，不超过2^63 - 1
 */
public class BasketballGame {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String[] str = scanner.nextLine().split(" ");
        scanner.close();
        long[] array = new long[str.length];
        int index = 0;
        boolean res = true;
        for (int i = 0; i < str.length; i++) {
            String s = str[i];
            long cur = 0;
            if (s.equals("+")) {
                if (index <= 1) {
                    System.out.println("-1");
                    res = false;
                    break;
                }
                cur = array[index-1] + array[index - 2];
                array[index] = cur;
                index++;
            } else if (s.equals("D")) {
                if (index == 0) {
                    System.out.println("-1");
                    res = false;
                    break;
                }
                cur = array[index-1] * 2;
                array[index] = cur;
                index++;
            } else if (s.equals("C")) {
                if (index == 0) {
                    System.out.println("-1");
                    res = false;
                    break;
                }
                index--;
                array[index] = 0;
            } else {
                Integer k = Integer.parseInt(s);
                array[index] = k;
                index++;
            }
        }

        if (!res) return;
        long sum = 0;
        for (int i = 0; i < index; i++) {
            sum += array[i];
        }
        System.out.println(sum);
    }
}
